Предприятие производит оптовую закупку некоторых изделий A и B, на которую выделена определённая сумма денег. У поставщика есть в наличии партии этих изделий различных модификаций по различной цене. На выделенные деньги необходимо приобрести как можно больше изделий A независимо от модификации. Если у поставщика закончатся изделия A, то на оставшиеся деньги необходимо приобрести как можно больше изделий B. Известны выделенная для закупки сумма, а также количество и цена различных модификаций данных изделий у поставщика. Необходимо определить, сколько будет закуплено изделий B и какая сумма останется неиспользованной.
Входные данные.
Первая строка входного файла содержит два целых числа: N — общее количество партий изделий у поставщика и M — сумма выделенных на закупку денег (в рублях). Каждая из следующих N строк описывает одну партию и содержит два целых числа (цена одного изделия в рублях и количество изделий в партии) и один символ (латинская буква A или B), определяющий тип изделия. Все данные в строках входного файла отделены одним пробелом.
В ответе запишите два целых числа: сначала количество закупленных изделий типа B, затем оставшуюся неиспользованной сумму денег.
Добавлено: 17.04.26 21:08
Приведём решение на Python:
f = open("embed.txt")
_, money = map(int, f.readline().split())
izd, zakupB = [], 0
for строка in f:
t = строка.split()
izd.append([t[2], int(t[0]), int(t[1])]) # сперва тип, потом цена и количество
izd.sort() # первые тип А
for type, cost, amount in izd:
how_much_buy = min(amount, money // cost) # сколько смогу купить из этой партии
if type == "B":
zakupB += how_much_buy
money -= how_much_buy * cost # уменьшаю деньги на стоимость покупки
print(zakupB, money) # 5895 227Ответ: 5895 227
Автор - rubygem17
None